package body Strings.IO is

   ---------
   -- Get --
   ---------

   procedure Get (X : in out Individu) is
   begin
      Ada.Text_IO.New_Line;
      Ada.Text_IO.Put_Line("Nom de l'individu : ");
      X := new String'(Ada.Text_IO.Get_Line);
   end Get;

   ---------
   -- Get --
   ---------

   procedure Get (X : in out Cercle) is
   begin
      Ada.Text_IO.New_Line;
      Ada.Text_IO.Put_Line("Nom du cercle : ");
      X := new String'(Ada.Text_IO.Get_Line);
   end Get;

   ---------
   -- Get --
   ---------

   procedure Get (X : in out Texte) is
   begin
      Ada.Text_IO.New_Line;
      Ada.Text_IO.Put_Line("Message : ");
      X := new String'(Ada.Text_IO.Get_Line);
   end Get;

   ---------
   -- Put --
   ---------

   procedure Put (X : in Individu) is
   begin
      Ada.Text_IO.Put(X.all);
   end Put;

   ---------
   -- Put --
   ---------

   procedure Put (X : in Cercle) is
   begin
      Ada.Text_IO.Put(X.all);
   end Put;

   ---------
   -- Put --
   ---------

   procedure Put (X : in Texte) is
   begin
      Ada.Text_IO.Put(X.all);
   end Put;


   function getIndividu(mess : String) return Individu is
   begin
      Ada.Text_IO.Put_Line(mess);
      DECLARE
         I : access Strings.Individu := new Strings.Individu'(new String'(Ada.Text_IO.Get_Line));
      BEGIN
         return I.all;
      END;
   end getIndividu;


   function putIndividu(i : Individu) return String is
   begin
      return i.all;
   end putIndividu;


   function getCercle(mess : String) return Cercle is
   begin
      Ada.Text_IO.Put_Line(mess);
      DECLARE
         C : access Strings.Cercle := new Strings.Cercle'(new String'(Ada.Text_IO.Get_Line));
      BEGIN
         return C.all;
      END;
   end getCercle;


   function putCercle(c : Cercle) return String is
   begin
      return c.all;
   end putCercle;

   function getTexte(mess : String) return Texte is
   begin
      Ada.Text_IO.Put_Line(mess);
      DECLARE
         T : access Strings.Texte := new Strings.Texte'(new String'(Ada.Text_IO.Get_Line));
      BEGIN
         return T.all;
      END;
   end getTexte;


   function putTexte(t : Texte) return String is
   begin
      return t.all;
   end putTexte;


end Strings.IO;
